ASP.NET [Italiano]
Programmazione di ASP.NET (lingua Italiana)
Ma insomma, tanto rumore per Scott Guthrie, il papà di asp.net, a Roma. Si dice evento unico, tutti che corrono a vederlo (io proprio non potevo esserci) e alla fine ... silenzio totale sui blog, sul msn, sui vari web.
Delusione o pubblico esigente? Devo cominciare a preoccuparmi per il nostro evento del 10 Febbraio?
In riferimento alla giusta raccomandazione di Fabio che fa seguito al mio post su XmlHttp, mi preme aggiungere un concetto che avevo già ribadito a Luglio 2003 nel newsgroup microsoft.public.it.dotnet.asp.
XmlHttp è lo strumento giusto se lo si usa sul client ma attenzione a non usarlo dentro una applicazione server come asp.net. Questa limitazione è dovuta al fatto che usa la libreria Wininet che tra le altre cose limita le connessioni contemporanee.
Questo è il motivo per cui esiste ServerXmlHttp che è un ottimo sistema per dialogare tra un'applicazione asp ed una asp.net.
Come ho visto il post di Andrea sono subito andato a vedere il sorgente dello script di Google Suggest e con piacere ho visto confermare la mia ipotesi, cioè l'uso del componente XmlHttp.
È dai tempi di asp che mi dilettavo a eseguire il binding con la <table> sul lato client e prelevare/aggiornare recordset disconnessi dal server via XmlHttp. Correvano gli anni in cui continuavo a tenere in aula il mitico corso 1017A (Mastering Web Application Development using Visual Interdev) opportunamente modificato (chi lo conosce sa di cosa parlo) ed uno dei sample che avevo sviluppato ad-hoc usava proprio XmlHttp per...
Io e Andrea abbiamo appena ricevuto una mail da Dino e personalmente la stavo per prendere come una divertente sfottitura al giustificato panico da injection che si sta diffondendo.
Invece è una cosa serissima e invito tutti a leggere il suo post.
È capitato, e quindi è un precedente a cui stare molto attenti. La patch si installa solo se trova asp.net installato... e fin qui sembra una cosa corretta.
Il problema è che asp.net può funzionare anche se apparentemente non è installato.... come? Asp.net è 'ufficialmente' installato quando è impostata la chiave di registry:HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322\Install = 1
Quindi accade che asp.net ci sia, funzioni, il comando “aspnet_regiis -lv” dice che tutto è ok, ma la chiave di registry dice che asp.net non c'è.
Quando capita questa strana cosa (a dire il vero è una cosa rara anche se non saprei dire quanto) il...
Come già anticipato da Lorenzo qui, è disponibile la patch (cioè un HttpModule) che risolve il bug per tutti siti asp.net su un server.
In questo nuovo articolo viene spiegato come funziona il nuovo Microsoft.Web.ValidatePathModule installato nel machine.config ed altre importanti informazioni sull'installazione/disinstallazione.
Quando ho letto il link che Lorenzo e poi Andrea mi hanno mandato riguardante il bug della forms authentication, mi è venuto subito l'atroce sospetto e dopo un veloce test ho avuto la conferma.
Il bug riguarda le autorizzazioni di asp.net indipendentemente dal tipo di autenticazione usata.
Si, avete capito bene, con lo stesso exploit ho potuto bucare un progetto di test interamente protetto con la Windows Authentication.
Ovviamente non si tratta di un bug di Kerberos o di Windows. L'autenticazione Windows deve avere luogo altrimenti l'utente non può fare nulla.Io mi sono loggato alla home page della web app di test come...
Ho raccolto recentemente una domanda su come si potesse redirezionare su una certa pagina l'utente a cui sia scaduta la sessione.Effettivamente alcune volte nella Session_Start non sempre si hanno a disposizione tutte le informazioni per poter ricostruire i dati di una Session ormai scaduta. Soluzioni alternative certamente ci sono ma volendo scegliere questa strada, ecco una possibile soluzione.
L'evento PreRequestHandlerExecute viene eseguito prima di ogni richiesta di pagina ed ha in più il privilegio di poter accedere alla Session.Se un valore arbitrario della session non è presente, significa che la session è nuova e quindi devo redirigere l'utente sulla pagina prestabilita...
Avete presente quando caricate la pagina di google quanto sia comodo avere subito il focus sulla textbox di ricerca?Lo script da usare è estremamente semplice:
document.all['IdControlloLatoClient'].focus();// -->
dove IdControlloLatoClient è l'id del controllo a cui dare il focus, tassativamente ottenuto con la proprietà ClientID.Lo script va poi registrato con il metodo RegisterStartupScript.
Per risolvere la questione in modo più elegante ho buttato giù un piccolo custom control che registra questo script.[DefaultProperty("FocusControl"), ToolboxData("<{0}:FirstFocus runat=server>")]public class FirstFocus : Control{ private string StartScript = "\r\n
private string EndScript = "\r\n// -->
"; protected Control FindNestedControl(Control root, string name) { foreach(Control ctl in root.Controls) { if(ctl.ID...